package com.liushuyv.calculator.ui;
import java.util.Scanner;
import com.liushuyv.calculator.*;//跨包引用
import com.liushuyv.calculator.bll.IOperation;
import com.liushuyv.calculator.bll.Operation;

/*
 **@Author:刘淑钰
 **Created on 2020/11/16
 * 运算器2： 完成分包，规约的功能都实现了，完成继承
 * swith进行选择性输出，增加抛出异常
 * 多态：父类型引用指向子类型 oprType = scanner.next();//没有使用多态的版本
        switch (oprType){
            case "+":
                result = numberA+numberB;
                break;
            case "-":
                result = numberA-numberB;
                break;
 * 跨包实现引用
 * 为了实现封装在operation中把a,b定义成private,对数据范围进行要求，用函数进行传值
 * IDEA可以使用快捷键添加行注释Ctrl+/、块注释Ctrl+Shift+/,alt+enter快速补充异常捕获
 */
public class Test {
    public static void main(String[] args) throws Exception {
        int numberA,numberB,result;
        Scanner scanner= new Scanner(System.in);//扫描输入
        String oprType;//用符号判断做减法还是加法
        numberA = scanner.nextInt();
        numberB = scanner.nextInt();
        oprType = scanner.next();//获取字符串
        IOperation opr = new Operation();//父类型指针指向子类型对象
        opr.setValue(numberA,numberB);
        switch (oprType){
            case "+":
                result = opr.add();
                break;
            case "-":
                result = opr.sub( );//使用实现的函数
                break;
            default:
                throw new Exception("运算符错了");
        }
        result = numberA+numberB;
        System.out.println(result);
    }
}
